1. Field of the Invention
The present invention relates to a support apparatus for an information processing apparatus, a support method, and a computer program.
2. Description of the Related Art
In an information processing apparatus, when software utilizes memory, the software acquires a memory area from a memory management mechanism such as an operating system, and frees up the memory area after using the memory. As techniques for acquiring and freeing up a memory area, malloc/free provided as a library function in the C programming language, a new/delete operator in the C++ programming language and so on are widely used. When the software does not free up the used memory area after using the memory, the memory area continues to occupy the resource of the information processing apparatus uselessly without being used by other software until the operation of the information processing apparatus ends. This phenomenon is called “memory leakage” (hereinafter referred to simply as “leakage”), and occurs due to a bug that prevents the software from freeing up memory. Generally speaking, it is difficult to detect such a leak using a static analysis testing method in which the structure of a program is statically analyzed, resulting in a high false detection rate. On the other hand, as for a dynamic analysis in which the actual state of a program during execution is analyzed, commercial tools that check whether or not a memory leak has occurred within a single process are widely used. Herein, “process” means an execution unit of software managed by an operating system. However, in software that includes a plurality of processes and shares data among the processes using a shared memory, there is a case in which an area of the shared memory acquired by one of the processes is freed up by another process. In such a case, it is not possible to accurately detect a memory leak by only checking a single process.
Usually, software is subjected to test processes before shipment to find and remove bugs, and then shipped as a product. However, in some of the software for use in industrial manufacturing apparatuses, it is extremely difficult to completely remove such bugs that prevent the software from freeing up memory in the pre-shipment test processes. For example, in a semiconductor exposure apparatus in which printing is performed on a semiconductor wafer, the operation of the apparatus is determined based on the combinations of a recipe in which the exposure conditions and the procedure are written with apparatus settings. Such combinations include a large number of parameters, and are created by a user based on the production planning of the factory production line after the shipment of the software. Because the necessary combinations vary from user to user, in order to completely remove a bug that prevents the software from freeing up memory, it is necessary to check all of the settings combinations in test processes. However, it is not practical to perform such checkups when software has a large number of parameters.
If software that contains such a bug that prevents the software from freeing up memory is continuously operated, the usable memory area of the information processing apparatus decreases gradually due to the occurrence of leaks. As a result, the performance of the information processing apparatus decreases and, at the same time, the operation of the apparatus becomes unstable. If such a case occurs, action has to be taken to restore the performance and stability of the information processing apparatus, such as shutting down or restarting the information processing apparatus to initialize the memory area. However, because a semiconductor exposure apparatus is assumed to be operated continuously over several weeks once it starts production based on the production planning, it is not possible to immediately restart the information processing apparatus. This is because, if the information processing apparatus is restarted, initialization and hardware adjustment are required, during which other apparatuses in the factory production line also have to be shut down, and the amount of production has to be adjusted. In addition, in such a semiconductor exposure apparatus, task instructions are inputted on a lot by lot basis, each lot including a plurality of wafers and, if the apparatus is restarted while the wafers in a lot are being processed, some of the wafers in the lot might have to be discarded. As described above, the sudden occurrence of a need to restart the information processing apparatus causes significant harm to the user. However, if the time at which a restart is required is predicted in advance, the user can review and optimize production planning based on the prediction. Accordingly, a technique for predicting the time at which a restart of the information processing apparatus is required with high accuracy is being sought.
The influence that memory leaks have on the information processing apparatus will be described with reference to FIGS. 21A and 21B. FIG. 21A is a diagram illustrating memory usage status when a job that causes a leak is not present in the information processing apparatus. In FIG. 21A, it is assumed that jobs J1 to J6 are to be executed by the information processing apparatus. Memory usage 2101 is the amount of memory required when the job J1 is executed. When a job that causes a leak is not present in the information processing apparatus, in all the jobs, memory usage does not exceed the upper limit of memory usage, so the memory never becomes exhausted.
In contrast, FIG. 21B is a diagram illustrating memory usage status when a job that causes a leak is present in the information processing apparatus. A memory leak 2102 occurs after the job J1 ends. This memory area becomes unusable when the job J2 is executed, so the memory capacity required by the job J2 increases as compared to when no leak is present. Furthermore, such a leak is accumulated, and when the job J4 is executed, the total of the value of accumulated leakage amounts and the memory usage used by the job J4 exceeds the upper limit of memory usage. In this case, the operation of the information processing apparatus becomes unstable, causing a possibility that the information processing apparatus might shut down.
There is no existing technique effective in predicting the time at which the memory of the information processing apparatus will be exhausted. As techniques in other fields that can be applied to the prediction of the time at which the memory of the information processing apparatus will be exhausted, for example, the detection of the degree of consumption of consumables and the prediction of the end of the service life thereof are conceivable.
Japanese Patent Laid-Open No. H08-220199 describes a method in which the modes used and operating time are recorded from the beginning of battery use and the remaining service life of the battery is calculated using the degree of consumption that has been stored in advance before shipment. Also, Japanese Patents Laid-Open Nos. 2005-250302 and 2004-168062 describe a method in which an estimated amount of consumables required for a job inputted into the printer and the actual remaining amount of consumables are compared to determine whether or not the print job can be accomplished. However, these methods determine the degree of consumption based on the theoretical values or designed values set during production, that is, they do not consider consumption due to unexpected factors after shipment. Accordingly, these methods cannot be applied to apparatuses, such as a semiconductor exposure apparatus, in which a leak occurs after shipment. In addition, because these methods do not consider plans for future use, they cannot predict service life in advance.
Japanese Patent Laid-Open No. 2005-258585 describes a method in which replacement parts of a molding machine are automatically ordered taking production planning into consideration. However, this method determines the degree of consumption of the molding machine based on the theoretical values or designed values set during production, so it cannot be applied to apparatuses that cannot include an enormous number of combinations of setting parameters before shipment.
The present invention provides a technique of predicting the time at which the memory of an information processing apparatus will be exhausted due to memory leaks.